package HTML5_2024_6_7;

public class M3_10 {
    /**
     * title 标题
     * Column 列
     * Submit 提交
     * Loading 加载中
     * Reset 重置
     * click 点击
     * personal 私人的
     * history 历史
     * picture 图片
     *
     * Uniapp
     */
    // VUE 和 VUE-CLI
    /**
     * VUE.js 简称VUE 用于构建用户界面的现代JavaScript框架 目前最流行前端框架之一
     * 专注于视图层 易于上手
     * 提供了响应式数据绑定和组件化的开发思路
     *
     * VUE-CLI VUE.js官方提供的标准化的脚手架 用于快速搭建
     */
    // Element-Plus
    // MVVM
    /**
     * M model
     * V view
     * VM viewModel 视图模型 直接将页面元素和变量进行绑定
     */
    // Spring Boot的优点
    /**
     * 独立使用Spring的问题
     * 1.依赖繁琐 需要在pom.xml文件中依次导入依赖
     * 2.版本兼容 依赖版本与项目版本的兼容问题
     * 3.框架整合 框架之间的整合问题: SpringMVC Spring MyBatis 需要导入整合的依赖
     * Spring Boot的优点
     * 1.并非推倒重来 而是在该工程中默认封装配置了多种框架的依赖
     * 2.提供了Jar包的打开方式: 将全部依赖项和配置,java类等都打包到一个jar文件
     * 3.开发过程中进行项目的热部署
     */
    // spring boot的自动配置(自动装配)
    /*`````````````````````````````````````````````````````正课`````````````````````````````````````````````````````*/
    // 前后端数据交互流程
    /*
                        前后端数据交互流程

        1. 前端利用axios给后端发请求
          1. 前端工程需要npm install axios且使用时需要导入
          2. 会遇到跨域问题CORS=>配置自己的放行策略WebConfig
          3. .then((response)=>{接收到后端响应数据时调用})
          4. response.data  是后端响应的JsonResult
          5. response.data.data  是JsonResult的data属性的值
        2. 如果前端传过来对象参数
          1. 后端需要准备DTO层对象接收参数
          2. Controller层方法上需要加@requestBody
        3. 控制层与业务层都要使用@Slf4j的log.debug打印日志
        4. 控制层
          1. 负责接收请求+给前端响应
          2. 具体的业务逻辑交给业务层完成
        5. 业务层
          1. 只负责完成业务逻辑
          2. 接口定义待实现的功能
          3. 实现类完成具体代码=>@Service + implements 接口
          4. 业务层如果正常执行,执行完毕会将结果返回给controller
          5. 业务层如果有问题
                a. 需要抛出异常,不能直接给前端响应结果!
                b. 如果抛出了异常,走全局异常处理器,由它来直接给前端响应结果
        6. 数据层
          1. XXXMapper接口文件上加@Repository
          2. XXXMapper.xml 中sql标签上的id值是Mapper接口文件的方法名
        7. 根据业务进行拆分
          1. base 基础工具包:config response exception
          2. user 用户模块 用户相关的内容都在此包下 controller service mapper pojo
          3. vehicle 车辆模块...
        8. 前端localStorage 以字符串键值对的方式维护数据
          1. JSON.parse(localStorage.user) => 将字符串user转为JS对象
          2. JSON.stringify(response.data.data) => 将userVO对象转为JSON字符串
          3. 在前端main.js中配置了全局方法方便在各个页面获取已登录的用户数据
            页面获取方式: const user = ref(getUser());

        window.getUser = ()=>{
            return localStorage.user ? JSON.parse(localStorage.user) : null
        }

     */
    // localStorage.clear()
    /**
     * 在控制台输入 localStorage.clear() 命令 可以将原有以localStorage方式存储的用户登录会话信息清空 用以模拟第一次登录访问该页面
     */

}
